[Java] Amazon Aurora にJDBC接続してみる
はじめに
Amazon Auroraに久しぶりに触ってみました。 今回はJavaのプログラムからAmazon Auroraに接続してみます。
準備する
まずはAmazon Auroraを起動します。私はt2.medium のシングルAZで構築しました。 その次にプログラムで使うJDBCドライバをダウンロードします。今回はMariaDBのドライバを使いました。他にはMySQLのJDBCも使えます。MariaDBのドライバは以下からダウンロードしました。 MariaDB Connector/J - MariaDB
Auroraには他のRDSと違いクラスターという複数のインスタンスをまとめたグループのような概念があります。 クラスターとインスタンスにそれぞれエンドポイントがあります。今回はシングルAZなのでどちらを指定しても同じになります。 詳しくは以下のページのAmazon RDSの基本構成のAuroraのところをご覧ください。 AWS再入門 Amazon RDS編
Amazon Auroraが起動したらプログラムから接続するテーブルを作成して準備完了です。
create table sample( column1 int );
実装する
準備ができたのでJDBCドライバにビルドパスを通して以下のように実装します。実行してテーブルの件数が標準出力に出力されたら成功です。何もInsertしていなければ0と表示されると思います。ハイライトの部分以外はMySQLに接続する場合と変わりません。
import java.sql.*; public class SampleAurora { public static void main(String[] args) { Connection conn = null; try { Class.forName("org.mariadb.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql:aurora://[エンドポイント]:[ポート番号]/[DB名]?user=[ユーザ名]&password=[パスワード]"); Statement statement = conn.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT count(*) FROM sample;"); resultSet.next(); System.out.println(resultSet.getInt(1)); conn.close(); } catch (Exception e) { e.printStackTrace(); } } }
最後に
マルチAZ構成のAuroraにMariaDBのJDBCドライバを使って接続すると、障害発生時に高速にフェールオーバーできるようです。 以下のページで説明しているようにgetConnectionの引数にインスタンスのエンドポイントを複数指定します。ぜひこちらの記事もご覧ください。 MariaDB Connector/JによるAmazon RDS for Auroraの高速フェイルオーバー